Method and system for displaying a cursor on a trading screen

ABSTRACT

A method, system, and computer program products are provided for updating the location of a cursor in a display window on a trading screen when certain events occurs. In a preferred embodiment, as market conditions change, the market information may be rearranged on a screen. To reduce the chances of missing a market opportunity by sending orders or managing them, the cursor moves in association with the market information such that the cursor appears fixed to the market information until a user moves the pointer device.

FIELD OF INVENTION

The present invention relates to a computer-based method for displayinga cursor on a graphical interface used in displaying market informationreceived from an electronic exchange to trade one or more tradeableobjects.

BACKGROUND

An exchange is a central marketplace with established rules andregulations where buyers and sellers meet to trade. Some exchanges,referred to as open outcry exchanges, operate using a trading floorwhere buyers and sellers physically meet on the floor to trade. Otherexchanges, referred to as electronic exchanges, operate by an electronicor telecommunications network instead of a trading floor to facilitatetrading in an efficient, versatile, and functionally rich way.

With respect to electronic exchanges, buyers and sellers log onto anelectronic exchange through their user terminals. A user terminalusually consists of a personal computer, laptop, or workstation that hasa Microsoft Windows-type operating system that provides a graphicalinterface based on windowed regions on the screen and a pointing devicesuch as a mouse. Certainly, the user terminal may include other types ofcomputing devices and might use other types of operating systems such asa Unix-type operating system to trade in a market.

Once logged onto an electronic exchange, buyers and sellers maytypically choose which tradeable objects to trade because an electronicexchange often hosts a variety of electronic markets such that eachelectronic market represents a different tradeable object. As usedherein, the term “tradeable object,” refers simply to anything that canbe traded with a quantity and/or price. It includes, but is not limitedto, all types of tradable objects such as financial products, which caninclude, for example, stocks, options, bonds, futures, currency, andwarrants, as well as funds, derivatives and collections of theforegoing, and all types of commodities, such as grains, energy, andmetals. The tradable object may be “real,” such as products that arelisted by an exchange for trading, or “synthetic,” such as a combinationof real products that is created by the user. A tradable object couldactually be a combination of other tradable object, such as a class oftradable objects.

After a selection of the electronic market(s) is made, traders mayaccess the market's order book that typically lists unexecuted buy andsell orders for the tradeable object. Referring to FIG. 1, an example ofthe communications that might occur between an electronic exchange and auser terminal is shown. During a trading session, market data 104 in theform of messages is relayed over communication link 108 to user terminalgenerally indicated as 100. Intermediate devices such as a gateway maybe used to facilitate communications over communication link 108.

By way of illustration, market data 104 contains information thatcharacterizes the market's order book and most often includes the insidemarket, which represents the lowest sell price (also referred to as thebest or lowest ask price) and the highest buy price (also referred to asthe best or highest bid price). In some electronic markets, market data104 might also include market depth, which generally refers toquantities available in the market at certain buy price levels andquantities available in the market at certain sell price levels. Inaddition to providing the market's order book information such as priceand quantity information, electronic exchanges can offer other types ofmarket information such as the open price, settlement price, net change,volume, last traded price, the last traded quantity, and order fillinformation.

As market data 104 is received at user terminal 100, the information maybe displayed to the trader on a computer screen 102. Upon viewing themarket information or a portion thereof, a trader may wish to takeactions such as send orders to a market, cancel orders in the market,change orders in the market, query an exchange, and so on. To do so, thetrader may input various commands or signals into the user terminal 100,for example, by using one or more conventional means for inputtinginformation such as typing into a keyboard, inputting commands through amouse, through a touch-screen, or inputting commands or signals throughsome other input device generally indicated by 110.

Upon receiving one or more commands or signals from the trader at 110,user terminal 100 may generate messages that reflect the actions takengenerally shown as 106. In addition to or in place of manual entry, atrader might use automated trading software that automatically orsemi-automatically generates transaction information. Of course, thereare many different types of messages and/or order types that can besubmitted to an electronic exchange, all of which may be consideredvarious types of transaction information. Once generated, actionmessages 106 are sent from user terminal 100 to the appropriateelectronic market.

It is worth noting that multiple elements of an order must usually beentered prior to an order being sent to market. Such elements or orderparameters include, among other things, the desired price, the quantityand whether a buy or a sell order is desired. The more time a tradertakes entering an order, the more likely the price on which he wanted tobid or offer will change or not be available in the market. The marketis fluid as many traders are sending orders to the marketsimultaneously. It fact, successful markets strive to have such a highvolume of trading that any trader who wishes to enter a market orderwill find a match and have the order filled quickly, if not immediately.In such liquid markets, the prices may fluctuate rapidly. On a tradingscreen, this results in rapid changes in the price and quantity fieldswithin the display.

Therefore, recent trading software applications have employed the use ofpointing devices to perform multiple actions such as sending an order tomarket with only one or two clicks of the pointing device. One of themost common pointing devices is a mouse that typically includes a mainbody, left and right buttons, and more enhanced versions sometimesinclude a wheel positioned between the left and right buttons. Othertypes of pointing devices may also be used such as keyboard cursors ortrackball, just to name a few. Regardless of the actual pointing deviceused, a pointer or on-screen cursor in the form of an arrow, or someother identifier, is displayed on the screen and may be used tohighlight information, set order parameters, send orders, cancel orders,and so on. The movement of the on-screen cursor is controlled by therelative movement of the pointing device by the user.

A pointer or on-screen cursor are important to traders interested inmaking fast and accurate trades. For most traders, market data 104 isupdated on their screens 102 quickly to reflect fast changes in themarket, and therefore, values on the screen 102 move or change at arapid pace. More often than not, it is up to the trader to quickly andaccurately move the on-screen cursor to a desired location to set orderparameters or input a buy order or a sell order, for instance. Toillustrate this further, FIGS. 2 and 3 show a type of graphical userinterface that may be used to trade a particular tradeable object.

FIG. 2 shows a window 200 that would ordinarily be displayed on computerscreen 102 to display the market's order book information to the trader.In particular, window 200 shows aggregate buy and sell orders that arecurrently in the market and such orders correspond to a price along theprice column (“Prc”). For instance, the best bid is for a quantity of“20” at a price of “140” and the best ask is for a quantity of “75” at aprice of “141.” Other bid and ask quantities are also shown for sake ofillustration. Furthermore, included in window 200 is an on-screen cursorin the form of an arrow 202, of course, the on-screen cursor may takeany form. Arrow 202 is controlled by the relative movement of a pointerdevice by the user. For sake of illustration, assume that arrow isplaced over the third cell from the top of the price column which fornow shows the price of “143.” Using a typical trading application andthe trading screen shown in FIG. 2, once the user depresses a buttonwith the cursor hovering over “143” a sell order would be loaded with apreset quantity and would then be waiting for a final command to be sentto the exchange at a price of “143.” In other types of tradingapplications, the sell order could also be sent to the exchange upon thevery same button depression.

FIG. 3 shows the same window 200 as in FIG. 2, only the marketconditions have quickly changed such that the inside market has moved upin price. Consequently, the prices have automatically moved to maintainthe current inside market prices (e.g., the best ask at “144” and thebest bid at “142”) in the center of the window 200. Assuming the userdid not move the pointer device during this quick shift in the market,arrow 202 would remain fixed in position on the window and it would nowbe currently placed over the price of “145.” And just while the traderwas reflecting on the previous market conditions shown in FIG. 2, shedecided to send a trader order at a price of “143;” (the price overwhich the cursor was previously positioned). As such, the trader was setin motion to send an order, however, the screen has just been updated toreflect the change in market conditions. Unfortunately, now the cursoris hovering over “145” an order is instead loaded at an undesirableprice of “145.” The trader missed her price.

FIGS. 2 and 3 illustrated one price movement in the market on one typeof trading display, but one can imagine the many price movements thatcan occur during a trading session. This requires that the buyer orseller be aware of the price movements at all times, and have the cursorready to take action, as if the trader intends to enter an order at aparticular price, but misses the price because the market prices movedbefore the order was entered, the trader may lose hundreds, thousands,or hundreds of thousands of dollars. The same might be true if thetrader missed an order delete because the price moved away. The faster atrader can trade, the less likely it will be that the trader will missher price.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the present embodiments can be better understood withreference to the following drawings. The components in the drawings arenot necessarily to scale, emphasis instead being placed uponillustrating example embodiments of the present invention.

FIG. 1 is a block diagram that illustrates a conventional user terminalfor receiving market data from an electronic exchange and for sendingtransaction information to the electronic exchange;

FIGS. 2 and 3 are block diagrams of a trading screen used for receivingand displaying market data and used for receiving inputs from a trader,and further showing an arrow controlled by a conventional mechanism;

FIG. 4 illustrates an example schematic of a dynamic cursor controlleralong with an operating system and hardware components of a computerdevice;

FIG. 5 is a flowchart illustrating a process for updating the positionof a cursor on a display based on the movement in the market;

FIGS. 6 and 7 are block diagrams of one type of trading screen showingan arrow controlled by a process of the type set forth in FIG. 5; and

FIGS. 8 and 9 are block diagrams of another type of trading screenshowing an arrow controlled by a process of the type set forth in FIG.5.

DETAILED DESCRIPTION I. Overview

The present embodiments include methods, systems, and computer programproducts for updating the location of a cursor on a trading screen. Inthe present embodiments, traders use software that creates specializedinteractive trading screens to, among other things, enable the tradersto enter orders, obtain market information, and monitor positions. Thesoftware frequently updates the trading screens as market conditionschange. During which time, the cursor moves in association with an itemof interest in the market information such that the cursor appears fixedin relation to the item of interest until the trader moves the pointerdevice.

In an embodiment of the present embodiments, the cursor moves inassociation with prices displayed to a trader. According to thisembodiment, software allows a trader to set the price for an order byselecting a price from the trading screen with an input device. Also,this allows a trader to easily manage working orders (e.g., delete orchange order parameters) that are associated with a price. As the price(and order) information is updated on the trading screen, the locationof the cursor automatically moves in association with the pricemovements. That way, if a trader intends to enter an order at aparticular price, for example, the trader will have an increased chanceof selecting the price as the cursor will preferably appear fixed inrelation to the prices. In addition, if the trader intends to delete orcancel an order at a particular price, for example, the trader will havean increased chance of selecting the exact order to delete, given thatthe order icon may move in association with the prices.

Other systems, methods, features, and advantages of the presentembodiments will be or become apparent to one with skill in the art uponexamination of the following drawings and description. It is intendedthat all such additional systems, methods, features, and advantages bewithin the scope of the present invention, and be protected by theaccompanying claims.

II. System Architecture

As will be appreciated by one of ordinary skill in the art, the presentembodiments may be operated in an entirely software embodiment, in anentirely hardware embodiment, or in a combination thereof. For sake ofillustration, however, the preferred embodiments are described insoftware-based embodiment, which is executed on a computer device. Assuch, the preferred embodiments take the form of a computer programproduct that is stored on a computer readable storage medium and isexecuted by a suitable instruction execution system in the computerdevice. Any suitable computer readable storage medium may be utilizedincluding hard disks, CD-ROMs, optical storage devices, or magneticstorage devices, for example.

With reference to FIG. 4, illustrated is a computer device 400 alongwith layers that define different stages that may be used to implementan embodiment of the present embodiments. The layers include dynamiccursor controller 402, operating system 404, and hardware 406. Computerdevice 400 preferably includes, among other things, at least a processorand a storage mechanism (both of which are not shown in the figure, butare well-known computer components) for storing and performing thefunctions described herein.

Operating system 404 may be used to manage hardware 406 and softwareresources of computer device 400. Operating system 404 general functionsmight include processor management, memory management, devicemanagement, storage management, application interface, and userinterface. Any type of operating system 404 may be used to implement thepresent embodiments, and examples of common operating systems includeMicrosoft Windows family of operating systems, the UNIX family ofoperating systems, and the Macintosh operating systems. However, it willbe recognized by those of ordinary skill in the art that the addedcomplexity of an operating system may not be necessary to perform thefunctions herein. For example, an operating system may not be needed ifthe present embodiments were implemented in hardware using, for example,hardware components such as application specific integrated circuits(ASICs).

Hardware 406 may include special programs or drivers to interfaceperipheral input devices generally indicated as 408 such as a mouse orkeyboard with operating system 404. In particular, hardware 406 maytranslate between electrical signals generated by an input device 408and the programming languages of operating system 404. An input device408 may be used to control an on-screen cursor. Example input devicesinclude a mouse, keyboard, game pad, virtual glove, joystick, ortrackball, just to name a few. An on-screen cursor may include anyspecial indicator or icon that moves with movements of the input device408. Example types of on-screen cursors include an arrow or some othergraphical icon.

Dynamic cursor controller 402 is preferably a software application thatinterfaces with operating system 404 to update the location of anon-screen cursor. Dynamic cursor controller 402 looks for changes in thedisplay of market information such that the position of the on-screencursor needs to be automatically updated to a new location relative tothe particular trading display. Dynamic cursor controller 402 ispreferably implemented by a C+ or C++ based software program, thoughother suitable program languages can be utilized such as Java. Dynamiccursor controller 402 may be configured to work with any type of tradingdisplay to provide the functionality described herein.

Dynamic cursor controller 402 may be stored in a computer programproduct and loaded into computer device 400 using a removable storagedrive, a hard drive, or a communications interface such as a serial portor USB connection. Alternatively, the computer program product may bedownloaded to computer device 400 over a network. The control logic(software), when executed by the processor, causes the processor toperform the functions of the invention as described herein.

III. System Features

The following are features of the preferred embodiments that provideparticular functionalities and utilities to electronic trading. Thefunctionalities include the ability to update the location of a cursorin association with an item of interest that moves on a trading displayto reduce the chances that a trader will miss a market opportunity. Morespecifically, the preferred embodiments may reduce the time it takes fora trader to place a trade or manage orders when electronically tradingthrough a trading display. This, in turn, may increase the likelihoodthat the trader will have orders filled at desirable prices andquantities.

Turning now to FIG. 5, illustrated is a flowchart of an exampleembodiment for displaying a cursor on a trading screen. The flowchart ofFIG. 5 shows the functionality and operation of a possibleimplementation of the present embodiments. In this regard, each blockmay represent a module, segment, or portion of code, which includes oneor more executable instructions for implementing specific logicalfunctions or steps in the process. Alternate implementations areincluded within the scope of the preferred embodiment of the presentinvention in which functions may be executed out of order from thatshown or discussed, including substantially concurrently or in reverseorder, depending on the functionality involved, as would be understoodby those reasonable skilled in the art of the present invention.

At block 500, operating system 404 operates a cursor on a graphicaldisplay that is shown on trading screen 514 of a computer device. By wayof illustration, many graphical output devices are of the raster type,and plot points. Each dot (or pixel) making up the display is mappedinto memory, which may be directly accessed by the processor. The numberof pixels on screen 514 is referred to as resolution and each pixel maybe addressed in terms of the “x” and “y” coordinates. The cursor may belocated at a particular (x, y) coordinate. Any alternatives to acoordinate system for mapping points on a display may be incorporated bythe present embodiments by one of ordinary skill in the art.

At block 502, input signals are received from hardware, and inparticular, from an input device such as a mouse or keyboard, forexample. The input device can move the cursor to a different (x, y)coordinate based on the physical movement of the device. In addition, auser may move the cursor to a desirable location on the screen such asprice (or to a location associated with the price) and click a buttonwhen a location is chosen. This identifies a pixel, which may be used tosend orders at a price associated with the pixel or coordinates, forexample. While a single click of the input device might be desirable toselect a location, any action taken by a user, whether comprising one ormore clicks or selections may be programmed to select a location.

At block 504, market information is received and displayed. Marketinformation may be configured for display to the trader on screen 514 bya trading software application. The market information may be arrangedin a graphical window, which may include only a portion of the computerscreen and can be resized in either direction to a desired dimension. Inaddition, some trading software allows a user to position the cursorover a particular location in the window and click a button causing anorder to be sent to an electronic exchange or causing initiation of anorder (and then sending the order through a confirmation box, forexample). While the present invention is not limited to the type oftrading window, example types of trading windows are shown for purposesof illustration in FIGS. 6-9. The market moves in the window when asignal causes the computer to rearrange the market information on thedisplay. The signal may include any type of single (software and/orhardware based), and may be automatically generated by the software ormanually generated by the trader, for example.

At block 506, when the market has moved, dynamic cursor controller 402gets the current coordinates of the cursor from operating system 404.Let us assume the current coordinates of the cursor are (X, Y), where Xand Y may refer to a number or unit of measurement from a known point oforigin preferably defined by the computer software or operating system404.

At block 508, dynamic cursor controller 402 determines if the cursor ispositioned in a “hot zone.” A hot zone, as used herein, may be definedby the programmer of the trading application, or alternatively, by theuser of the present embodiments if so desired. Referring briefly to FIG.6, a hot zone might include price cells “137” through “145,” such thatif the trader selects a location associated with one of those prices, anorder is set with the price corresponding to the cell selected. A cellis a uniquely identified section and may be displayed as a rectangularspace that can hold text, a value, or a formula, for example. Other hotzones might include the bid quantity cells or ask quantity cells, forexample. If the cursor is not in a pre-defined hot-zone, thenpreferably, no action is taken to update the position of the cursor atblock 510. In other words, the cursor may be outside of the activetrading area. It is worth noting that defining the hot-zone does notrequire the use of cells, rather it can be defined as any shape or size,down to the pixels (or smallest unit) of the graphical display.

At block 512, if the cursor is in a hot-zone, then the operating system404 is called on to move the cursor to the same relative coordinates asthe market movement. So, for example, if the price was originallyassociated with (X+1, Y) in block 506 (the cursor coordinates were (X,Y)) moved to a location at (X+1, Y+2), then the cursor would be updatedto have the same relative coordinates (e.g., cursor would be moved from(X, Y) to (X, Y+2)), assuming the connected input device was not moved.

IV. System Examples

Examples are provided herein to illustrate some of the features of thepresent embodiments. Description of these examples is provided forconvenience only. It is not intended that the invention be limited toapplication in these screen display environments. In fact, after readingthe following description of the examples, it will become apparent to aperson skilled in the relevant art how to implement the invention inalternative trading screen environments.

FIG. 6 illustrates a screen display and order entry system in accordancewith the preferred embodiments. In particular, the current inside marketof an example market is shown in screen display that is generallyindicated as 600. The display 600 is a preferred display as itsimplifies the trading system by entering and tracking marketinformation in an efficient manner, though the present invention is notlimited to a display. This type of display arranges market informationin an easy to read fashion by orienting the bid quantities and askquantities along a common price axis that move relative to the commonprice axis. The representative prices for the given tradeable object areshown in a price column, where the prices are arranged in numericalorder in increments. Prices may be of the static-type (prices normallydo not move until a repositioning command is received) or of thedynamic-type display (prices normally do move), until however, thetrading software receives a command to reposition or rearrange themarket information on the screen.

In the example shown, the highest bid price is at “140” and the lowestask price is at “141.” A cursor 602 is currently positioned over price“143” with coordinates of (X, Y), where X and Y represent any number orunit of measurement from a known point of origin. A display like 600allows a trader to enter orders directly into the window by selecting aprice cell that is situated along the common axis, for example. So, upona click of a button, for example, an order may be initiated with apreset quantity and the selected price (e.g., in this example, theselected price would equal a price of “143”).

FIG. 7 illustrates the same screen display and order entry system ofFIG. 6, except that the inside market has moved up to a highest bidprice of “141” and a lowest ask price of “143.” To keep the insidemarket near the center of the window, the trading application mayreposition the market information on the display. In doing so, price“143” has moved to (X′, Y′) on the screen, where X′ and Y′ represent adifferent location than (X, Y). According to the preferred embodiments,dynamic cursor controller 402 moves the location of the cursor 602 from(X, Y) to (X′, Y′) to keep the on-screen cursor “fixed” in associationwith price “143,” assuming the trader has not moved the cursor toanother location. It is worth noting that the market information that isdisplayed may be rearranged or configured for any reason, and therefore,the present embodiments are not limited to occurrences when the tradingsoftware repositions the inside market in the center or near center ofthe display.

With reference to FIG. 6, if the market information has changed, but themarket information was not repositioned, then preferably the cursor 602would remain at its (X,Y) location along with price “143.” That is tosay, market information can change and the screen may be updated, but ifthe contents in the designated hot-zone do not move, then the on-screencursor remains fixed until a user moves the input device. For example, achange in market information might include the situation where thequantity of “75” at the best ask price of “141” was reduced to “35,”indicating that a quantity of “40” was matched (this example scenario isnot shown in the figures).

FIG. 8 illustrates another type of screen display and order entry systemin accordance with the preferred embodiments. Screen display of type 800maintains the inside market in the center of the screen at all times(this type of screen display is similar to the type of display thatsimply maintains the inside market at the same location on a display atall times; another example of this type of screen is the Market Grid,which is commercially available from Trading Technologies International,Inc. of Chicago, Ill.). Therefore, when the inside market changes, theprice values also change at those designated locations. For ease ofcomparing screen types in the figures, the market information shown inscreen display 800 is the same as market information shown in FIG. 6.Likewise, with reference to FIG. 8, a cursor 802 is currently positionedover price “143.”

FIG. 9 illustrates the screen display 800 of FIG. 8, except that theinside market has changed to a highest bid price of “141” and a lowestask price of “143.” In this example, the trading application, whichgenerates the screen display 800, reconfigured the market information todisplay the new market information. Accordingly, dynamic cursorcontroller 402 automatically updates the location of the cursor to alocation associated with “143.” Again, this is assuming that the traderhas not yet moved the cursor.

Of course, the present embodiments may be configured by one of ordinaryskill in the art to work with any variety of market information screensthat moves market information in any way to convey the current state ofthe market to the trader. Preferably, the market information screensshow prices along an axis such that they can display “gaps” in themarket (e.g., prices that do not have bid or ask quantities) as thosedisplays can generally provide a more intuitive display of the market.An example of this type of display is shown in FIGS. 6 and 7.

However, the market information screens that do not show “gaps” may alsobe used. An example of this type of display is shown in FIGS. 8 and 9(although displays of the type shown in FIGS. 8 and 9 may be configuredby one of ordinary skill in the art to include “gaps”). Furthermore, insituations where the prices are removed from the display (e.g., whenquantities at those prices are gone), the cursor may be fixed to theitem of interest associated with the current location of the cursor. Forexample, with reference to FIG. 8, assume that the item of interest was“price” and the cursor was set to move in association with a particularprice of “142.” Then, the market display was updated and the price of“142” no longer appears in the display; see FIG. 9. In this example,instead of moving the cursor, the cursor will now track the movement ofthe price “144,” which corresponds to the cursors current location.Accordingly, the cursor would track the movement of “144” until it toodisappears from the display, at which time the cursor would track themovement of another price. Upon reading the teachings described herein,one of ordinary skill in the art will recognize the many other ways thatthe movement of cursor could be based on in such screens.

IV. Conclusion

The present embodiments provide a mechanism for use in tradingelectronically that preferably reduces the chances of a trader makingthe wrong trades at prices that are not desired, especially when usingtrading software that allows single click trading. Preferably, a tradermay designate an item of interest, and once designated, the cursorautomatically tracks the movement of the information as it is displayedon the trading screen. In the above examples, price information was usedas the item of interest, but other items of interest may be selectedsuch as bid or ask quantities, a trader's working orders, last tradedprice, or any other item of interest to the trader.

While various embodiments of the present invention have been describedabove, it should be understood that they have been presented by way ofexample only, and not limitation. It will be understood by those skilledin the art that various changes in form and details may be made thereinwithout departing from the spirit and scope of the invention as definedin the appended claims. Thus, the breadth and scope of the presentinvention should not be limited by any of the above-described exemplaryembodiments, but should be defined only in accordance with the followingclaims and their equivalents.

1. A method for displaying a cursor on a screen of a computer used in anelectronic trading system, the method comprising: identifying a cursorat a first location in a display region, the first location beingassociated with a first portion of market information for a tradeableobject; and receiving a signal, and in response to the signal, updatingthe display region by automatically moving the cursor to a secondlocation associated with the first portion of market information, thecursor being moved together with the first portion of marketinformation. 2-18. (canceled)